package state_pattern.concrete;

import state_pattern.Role;
import state_pattern.State;

/**
 * @author 申书航
 * @version 1.0
 * 准备状态类，表示角色的准备状态
 */
public class ReadyState extends State {

    /**
     * 构造函数，初始化角色
     * @param role 需要被赋予状态的角色
     */
    public ReadyState(Role role) {
        super(role);
    }

    /**
     * 进入准备状态时执行的方法
     * 输出角色进入准备状态的信息
     */
    @Override
    public void onEnter() {
        System.out.println(role.getName() + "进入准备状态");
    }

    /**
     * 执行准备状态的方法
     * 输出角色正在准备的信息并切换到行走状态
     */
    @Override
    public void execute() {
        System.out.println(role.getName() + "正在准备...");
        role.changeState(new WalkState(role));
    }
}
